using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Documents;
using System.Windows.Shapes;

namespace YouVisio.Silverlight.TextDiff
{
    public interface ITextDiffViewerUI
    {
        void ParseTemplate(ITemplateSource source);

        IDictionary<string, DependencyObject> OtherElements { get; }

        void OnApplyTemplate();
        Size MeasureOverride(Size availableSize);
        Size ArrangeOverride(Size finalSize);
        void UpdateScrollBar();
        void UpdatePreviewLines();
        void SetLeftText(string text);
        string GetLeftText();
        void SetRightText(string text);
        string GetRightText();
        void SetLeftFileName(string fileName);
        void SetRightFileName(string fileName);
        void SetErrorMessage(string message);

        void SetScreen(Screen screen);
        Tuple<Paragraph, Paragraph> ResetOutputParagraphs();
        void OutputParagraphsPopulated();

        void GenerateLinesPreview(IEnumerable<BlockInfo> blocksList, int allLines);
        void GenerateLineNumbers(bool hasLineNumbers, string numbers, int linesCount);
        void GenerateColoredBackgrounds(List<BlockInfo> blocksList, int linesCount);
    }
}